Merge "rdbms: make LBFactory close/rollback dangling handles like LoadBalancer"
[lhc/web/wiklou.git] / tests / phpunit / includes / cache / MessageCacheTest.php
index 2fa662b..74ad84a 100644 (file)
@@ -13,7 +13,6 @@ class MessageCacheTest extends MediaWikiLangTestCase {
        protected function setUp() {
                parent::setUp();
                $this->configureLanguages();
-               MessageCache::destroyInstance();
                MessageCache::singleton()->enable();
        }
 
@@ -25,6 +24,7 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                // let's choose e.g. German (de)
                $this->setUserLang( 'de' );
                $this->setContentLang( 'de' );
+               $this->resetServices();
        }
 
        function addDBDataOnce() {
@@ -152,7 +152,6 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                ] );
                $this->overrideMwServices();
 
-               MessageCache::destroyInstance();
                $messageCache = MessageCache::singleton();
                $messageCache->enable();
 
@@ -204,7 +203,7 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                ];
        }
 
-       public function testNoDBAccess() {
+       public function testNoDBAccessContentLanguage() {
                global $wgContLanguageCode;
 
                $dbr = wfGetDB( DB_REPLICA );
@@ -218,7 +217,22 @@ class MessageCacheTest extends MediaWikiLangTestCase {
 
                $dbr->restoreFlags();
 
-               $this->assertEquals( 0, $dbr->trxLevel(), "No DB read queries" );
+               $this->assertEquals( 0, $dbr->trxLevel(), "No DB read queries (content language)" );
+       }
+
+       public function testNoDBAccessNonContentLanguage() {
+               $dbr = wfGetDB( DB_REPLICA );
+
+               MessageCache::singleton()->getMsgFromNamespace( 'allpages/nl', 'nl' );
+
+               $this->assertEquals( 0, $dbr->trxLevel() );
+               $dbr->setFlag( DBO_TRX, $dbr::REMEMBER_PRIOR ); // make queries trigger TRX
+
+               MessageCache::singleton()->getMsgFromNamespace( 'go/nl', 'nl' );
+
+               $dbr->restoreFlags();
+
+               $this->assertEquals( 0, $dbr->trxLevel(), "No DB read queries (non-content language)" );
        }
 
        /**
@@ -245,7 +259,6 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                $importer->import( $importRevision );
 
                // Now, load the message from the wiki page
-               MessageCache::destroyInstance();
                $messageCache = MessageCache::singleton();
                $messageCache->enable();
                $messageCache = TestingAccessWrapper::newFromObject( $messageCache );